home *** CD-ROM | disk | FTP | other *** search
- /*
- FastBitCopies.h
-
- Interface to FastBitCopies.c
-
- Special bit copy routines for 8-bit graphics
-
- Copyright 1993 by Al Evans
-
- 1/27/93
-
- Updated for GE for Windows 95 1.0, 11/29/95
-
- */
-
- #ifndef FASTBCOPIES
- #define FASTBCOPIES
-
- //#define TESTING_C_RTNS
-
- // If compiling for PowerMac or Windows 95, or testing, use C routines instead of 68000
-
- #if (defined(powerc) || defined(__powerc) || defined (TESTING_C_RTNS)) || defined(TARGET_IS_WIN95) || defined (TARGET_IS_BEOS)
- #define MoveBitsXPM CMoveBitsXPM
- #define MoveBitsXPOR CMoveBitsXPOR
- #define MoveBitsCP CMoveBitsCP
- #define MoveBitsCPM CMoveBitsCPM
- #define MoveBitsMasked CMoveBitsMasked
- #endif
-
- #define MoveBitsXP CMoveBitsXP
-
- enum {
- notTransparent = 40
- };
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- GE_CALLBACK(void,QuickCopyBits)(const BitMap *srcBits, const BitMap *dstBits,
- const Rect *srcRect, const Rect *dstRect,
- short mode,RgnHandle maskRgn);
-
- // Masking only used in MacOS and BeOS
- #if defined(TARGET_IS_MACOS) || defined(TARGET_IS_BEOS)
- //Returns a ptr to a 8-bit mask the same size as srcBits
- //The mask confains 0xFF for each byte of keyPalIndex in srcBits, 0x00 for all others
- Ptr MakeMask(const BitMap *srcBits, char keyPalIndex);
- #endif
-
- /*
- Assembly engines
- */
-
- extern void MoveBitsXPM(Ptr source, Ptr dest,
- long nLines, long nBytesPerLine,
- long srcRowBytes, long destRowBytes, long mirrorFlags);
-
- extern void MoveBitsXP(Ptr source, Ptr dest,
- long nLines, long nBytesPerLine,
- long srcRowBytes, long destRowBytes, long mirrorFlags);
-
- extern void MoveBitsXPOR(Ptr source, Ptr dest,
- long nLines, long nBytesPerLine,
- long srcRowBytes, long destRowBytes, long mirrorFlags, long colorIndex);
-
-
- extern void MoveBitsNOTXP(Ptr source, Ptr dest,
- long nLines, long nBytesPerLine,
- long srcRowBytes, long destRowBytes);
-
- extern void MoveBitsCP(Ptr source, Ptr dest,
- long nLines, long nBytesPerLine,
- long srcRowBytes, long destRowBytes);
-
- extern void MoveBitsCPM(Ptr source, Ptr dest,
- long nLines, long nBytesPerLine,
- long srcRowBytes, long destRowBytes, long mirrorFlags);
-
- extern void MoveBitsMasked(Ptr source, Ptr dest,
- long nLines, long nBytesPerLine,
- long srcRowBytes, long destRowBytes, Ptr mask, long mirrorFlags);
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif
-